package stackoferror;

/**
 *  和StackOverflowError一样，通过改变内存大小和Java程序来解决这个问题。
 * 一般我们会优先考虑从Java程序上来进行改善，例如给线程一个固定的死亡时间，
 * 使其不会出现大量线程不能被回收的情况，
 * 或者另一方面减少线程数。而当我们无法减少线程数时和无法更换64位虚拟机的情况下，
 * 我们只能通过减少堆内存和栈容量来权衡这一部分的内存消耗。
 * ---------------------
 * 作者：ActChen
 * 来源：CSDN
 * 原文：https://blog.csdn.net/qq_41285600/article/details/82798920
 * 版权声明：本文为博主原创文章，转载请附上博文链接！
 */
public class StackOOM {
    private void fun() {
        while (true) {

        }
    }

    public void createThread() {
        while(true) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    fun();
                }
            }).start();
        }
    }

    public static void main(String[] args) {
        StackOOM oom = new StackOOM();
        oom.createThread();
    }
}
